package Leetcode第二期;

import java.util.ArrayDeque;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

/**
 * @author : K k
 * @date : 16:14 2020/10/18
 */
public class 二叉搜索树迭代器_173 {
    //维护一个队列
    LinkedList<Integer> queue;
    int index=0;
    public 二叉搜索树迭代器_173(TreeNode root) {
        this.queue=new LinkedList<>();
        init(root);
    }

    //逆前序遍历
    private void init(TreeNode root){
        if(root==null){
            return;
        }
        init(root.left);
        queue.addLast(root.val);
        init(root.right);
    }

    /** @return the next smallest number */
    public int next() {
        return queue.pollFirst();
    }

    /** @return whether we have a next smallest number */
    public boolean hasNext() {
        if (queue.isEmpty()){
            return false;
        }
        return true;
    }
}
